package com.cmc.cloud.cmclink.doc.vo.confirmnoticevo;

import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import com.cmes.framework.common.pojo.PageParam;
import com.cmes.framework.common.util.date.DateUtils;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * 确认装货港更改通知分页 Request VO
 * 
 * @author codegen
 */
@Schema(description = "管理后台 - 确认装货港更改通知分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ConfirmNoticePageReqVO extends PageParam {
    @Schema(description = "当前港口")
    @NotNull(message = "{confirmnotice.currentport.notnull}")
    @Length(max = 5, message = "{confirmnotice.currentport.length}")
    private String currentPort;

    @Schema(description = "数据字典：Telex_Seaway、FCN、Cancel_Telex_Seaway、MCN、COD、SIC")
    @Length(max = 64, message = "{confirmnotice.notice.length}")
    private String notice;

    @Schema(description = "通知类型支持多选")
    private String[] notices;

    @Schema(description = "提单号", example = "19881")
    @Length(max = 50, message = "{confirmnotice.blno.length}")
    private String blNo;

    @Schema(description = "船名")
    @Length(max = 50, message = "{confirmnotice.vesselcode.length}")
    private String vesselCode;

    @Schema(description = "进口航次")
    @Length(max = 50, message = "{confirmnotice.voyageim.length}")
    private String voyageIm;

    @Schema(description = "通知审核状态列表 支持多选过滤")
    private String[] status;

    @Schema(description = "检查时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY)
    private String monthFrom;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY)
    private String monthTo;

    @Schema(description = "申请人")
    private String applyUser;
}
